package com.xqboss.apps.vo.user;

import com.xqboss.apps.enums.nft.NftTypeEnum;
import com.xqboss.apps.enums.nft.UserNftStatusEnum;
import com.xqboss.apps.enums.user.UserNftSourceTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * APP NFT 信息
 * @author Trent
 * @date 2023/8/24
 */
@Data
@ApiModel
public class AppUserNFTItemVo {

    @ApiModelProperty("用户藏品ID")
    private Long userNftId;
    @ApiModelProperty("藏品ID")
    private Long nftId;
    @ApiModelProperty("藏品来源")
    private UserNftSourceTypeEnum source;
    @ApiModelProperty("藏品编号ID")
    private Long nftNumberId;
    @ApiModelProperty("藏品编号值")
    private String nftNumberValue;
    @ApiModelProperty("藏品图片")
    private String mainImg;
    @ApiModelProperty("背景图片")
    private String bgimg;
    @ApiModelProperty("藏品名称")
    private String title;
    @ApiModelProperty("藏品类型")
    private NftTypeEnum nftType;
    @ApiModelProperty("藏品状态")
    private UserNftStatusEnum nftStatus;

    @ApiModelProperty("是否开启转卖")
    private Boolean isResell;

    @ApiModelProperty("当前是否在打卡时段")
    private Boolean isPunchTime = false;

    @ApiModelProperty("总发放量")
    private Integer totalStock;

    @ApiModelProperty("合约地址")
    private String contract;

    @ApiModelProperty("流通量")
    private Integer circulatingSupply;

    @ApiModelProperty("是否锁定 0否1是")
    private Integer isLock;

    //**** 下面装备信息

    @ApiModelProperty("装备ID")
    private Long id;
    @ApiModelProperty("总耐久度")
    private BigDecimal totalDurability;
    @ApiModelProperty("装备耐久度")
    private BigDecimal durability;
    @ApiModelProperty("总破损度")
    private BigDecimal totalBreakage;
    @ApiModelProperty("装备破损度")
    private BigDecimal breakage;
    @ApiModelProperty("装备稀有度")
    private Integer rarity;

    ////////////以下为装备基础属性值////////////////
    @ApiModelProperty("装备等级")
    private Integer level;
    @ApiModelProperty("装备幸运值")
    private Integer luck;
    @ApiModelProperty("装备天赋值")
    private Integer talent;
    @ApiModelProperty("装备耐久值")
    private Integer durable;
    @ApiModelProperty("装备坚固值")
    private Integer strong;
    @ApiModelProperty("装备总属性值")
    private Integer totalAttrCount;
    @ApiModelProperty("剩余加点")
    private Integer remainAttrCount;
    @ApiModelProperty("收益折算系数")
    private BigDecimal incomeRatio;

    @ApiModelProperty("装备是否损坏")
    private Boolean isBreakage;
    @ApiModelProperty("是否耐久度不足")
    private Boolean isInsDurability;

    @ApiModelProperty("打卡耐久度消耗")
    private BigDecimal durabilityExpend;
    @ApiModelProperty("打卡破损度消耗")
    private BigDecimal breakageExpend;

    @ApiModelProperty("打卡空投热豆")
    private BigDecimal punchAirdropBeans;
    @ApiModelProperty("剩余空投")
    private BigDecimal remainAirdrop;
    @ApiModelProperty("总空投")
    private BigDecimal totalAirdrop;
    @ApiModelProperty("剩余打卡次数")
    private Integer remainPunch;
    @ApiModelProperty("下次打卡空投值")
    private BigDecimal nextPunchAirdrop;

    @ApiModelProperty("是否可熔炼（1是0否）")
    private Integer isSmelt;

}
